<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>久等了，冰河的《深入理解分布式事务：原理与实战》终于出版了 | 冰河技术</title>
    <meta name="generator" content="VuePress 1.9.7">
    <link rel="icon" href="/favicon.ico">
    <script charset="utf-8" async="async" src="/js/jquery.min.js"></script>
    <script charset="utf-8" async="async" src="/js/global.js"></script>
    <script charset="utf-8" async="async" src="/js/fingerprint2.min.js"></script>
    <script charset="utf-8" async="async" src="https://v1.cnzz.com/z_stat.php?id=1281063564&amp;web_id=1281063564"></script>
    <script charset="utf-8" async="async" src="https://s9.cnzz.com/z_stat.php?id=1281064551&amp;web_id=1281064551"></script>
    <script>
            var _hmt = _hmt || [];
            (function() {
              var hm = document.createElement("script");
              hm.src = "https://hm.baidu.com/hm.js?d091d2fd0231588b1d0f9231e24e3f5e";
              var s = document.getElementsByTagName("script")[0];
              s.parentNode.insertBefore(hm, s);
            })();
            </script>
    <meta name="description" content="包含：编程语言，开发技术，分布式，微服务，高并发，高可用，高可扩展，高可维护，JVM技术，MySQL，分布式数据库，分布式事务，云原生，大数据，云计算，渗透技术，各种面试题，面试技巧...">
    <meta property="article:modified_time" content="2022-05-23T11:30:51.000Z">
    <meta property="og:title" content="久等了，冰河的《深入理解分布式事务：原理与实战》终于出版了">
    <meta property="og:type" content="article">
    <meta property="og:url" content="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html">
    <meta name="twitter:title" content="久等了，冰河的《深入理解分布式事务：原理与实战》终于出版了">
    <meta name="twitter:url" content="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="robots" content="all">
    <meta name="author" content="冰河">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    <meta name="keywords" content="冰河，冰河技术, 编程语言，开发技术，分布式，微服务，高并发，高可用，高可扩展，高可维护，JVM技术，MySQL，分布式数据库，分布式事务，云原生，大数据，云计算，渗透技术，各种面试题，面试技巧">
    <meta name="apple-mobile-web-app-capable" content="yes">
    
    <link rel="preload" href="/assets/css/0.styles.ab888ebb.css" as="style"><link rel="preload" href="/assets/css/styles.css?v=1653305936337" as="style"><link rel="preload" href="/assets/js/cg-styles.js?v=1653305936337" as="script"><link rel="preload" href="/assets/js/cg-app.js?v=1653305936337" as="script"><link rel="preload" href="/assets/js/cg-4.js?v=1653305936337" as="script"><link rel="preload" href="/assets/js/cg-3.js?v=1653305936337" as="script"><link rel="preload" href="/assets/js/cg-284.js?v=1653305936337" as="script"><link rel="preload" href="/assets/js/cg-5.js?v=1653305936337" as="script"><link rel="preload" href="/assets/js/cg-6.js?v=1653305936337" as="script">
    <link rel="stylesheet" href="/assets/css/0.styles.ab888ebb.css"><link rel="stylesheet" href="/assets/css/styles.css?v=1653305936337">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">冰河技术</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/md/other/guide-to-reading.html" class="nav-link">
  导读
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="核心技术" class="dropdown-title"><span class="title">核心技术</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          Java核心技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/core/java/basics/2022-04-28-全网最全正则表达式总结.html" class="nav-link">
  Java基础
</a></li><li class="dropdown-subitem"><a href="/md/core/java/advanced/default.html" class="nav-link">
  Java进阶
</a></li><li class="dropdown-subitem"><a href="/md/core/java/senior/default.html" class="nav-link">
  Java高级
</a></li><li class="dropdown-subitem"><a href="/md/core/java/java8/2022-03-31-001-Java8有哪些新特性呢？.html" class="nav-link">
  Java8新特性
</a></li></ul></li><li class="dropdown-item"><h4>
          Spring核心技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/core/spring/ioc/2022-04-04-001-聊聊Spring注解驱动开发那些事儿.html" class="nav-link">
  IOC核心技术
</a></li><li class="dropdown-subitem"><a href="/md/core/spring/aop/default.html" class="nav-link">
  AOP核心技术
</a></li></ul></li><li class="dropdown-item"><h4>
          JVM核心技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/core/jvm/2022-04-18-001-JVM调优的几种场景.html" class="nav-link">
  JVM调优技术
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="性能调优" class="dropdown-title"><span class="title">性能调优</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/performance/jvm/default.html" class="nav-link">
  JVM性能调优
</a></li><li class="dropdown-item"><!----> <a href="/md/performance/tomcat/default.html" class="nav-link">
  Tomcat性能调优
</a></li><li class="dropdown-item"><!----> <a href="/md/performance/mysql/default.html" class="nav-link">
  MySQL性能调优
</a></li><li class="dropdown-item"><!----> <a href="/md/performance/system/default.html" class="nav-link">
  操作系统性能调优
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="并发编程" class="dropdown-title"><span class="title">并发编程</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/concurrent/bottom/default.html" class="nav-link">
  底层技术
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/source/2020-03-30-001-一文搞懂线程与多线程.html" class="nav-link">
  源码分析
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/basics/2020-03-30-001-明明中断了线程，却为何不起作用呢？.html" class="nav-link">
  基础案例
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/ActualCombat/default.html" class="nav-link">
  实战案例
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/interview/default.html" class="nav-link">
  面试
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/framework/default.html" class="nav-link">
  系统架构
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="框架源码" class="dropdown-title"><span class="title">框架源码</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/frame/spring/default.html" class="nav-link">
  Spring源码
</a></li><li class="dropdown-item"><!----> <a href="/md/frame/springmvc/default.html" class="nav-link">
  SpringMVC源码
</a></li><li class="dropdown-item"><!----> <a href="/md/frame/mybatis/default.html" class="nav-link">
  MyBatis源码
</a></li><li class="dropdown-item"><!----> <a href="/md/frame/dubbo/default.html" class="nav-link">
  Dubbo源码
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="分布式" class="dropdown-title"><span class="title">分布式</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          缓存技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/cache/default.html" class="nav-link">
  Redis
</a></li></ul></li><li class="dropdown-item"><h4>
          服务注册发现
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/zookeeper/default.html" class="nav-link">
  Zookeeper
</a></li></ul></li><li class="dropdown-item"><h4>
          消息中间件
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/mq/rabbitmq/default.html" class="nav-link">
  RabbitMQ
</a></li><li class="dropdown-subitem"><a href="/md/distributed/mq/rocketmq/default.html" class="nav-link">
  RocketMQ
</a></li><li class="dropdown-subitem"><a href="/md/distributed/mq/kafka/default.html" class="nav-link">
  Kafka
</a></li></ul></li><li class="dropdown-item"><h4>
          网络通信
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/netty/default.html" class="nav-link">
  Netty
</a></li></ul></li><li class="dropdown-item"><h4>
          远程调用
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/dubbo/default.html" class="nav-link">
  Dubbo
</a></li></ul></li><li class="dropdown-item"><h4>
          数据库
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/mongodb/default.html" class="nav-link">
  MongoDB
</a></li></ul></li><li class="dropdown-item"><h4>
          搜索引擎
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/es/default.html" class="nav-link">
  ElasticSearch
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="微服务" class="dropdown-title"><span class="title">微服务</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/microservices/springboot/default.html" class="nav-link">
  SpringBoot
</a></li><li class="dropdown-item"><!----> <a href="/md/microservices/springcloudalibaba/2022-04-02-SpringCloudAlibaba专栏开篇.html" class="nav-link">
  SpringCloudAlibaba
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="中间件" class="dropdown-title"><span class="title">中间件</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/middleware/bytecode/2022-04-11-001-工作多年的你依然重复做着CRUD-是否接触过这种技术.html" class="nav-link">
  字节码编程
</a></li><li class="dropdown-item"><!----> <a href="/md/middleware/threadpool/default.html" class="nav-link">
  手写线程池
</a></li><li class="dropdown-item"><!----> <a href="/md/middleware/limiter/default.html" class="nav-link">
  分布式限流
</a></li><li class="dropdown-item"><!----> <a href="/md/middleware/independent/default.html" class="nav-link">
  开源项目
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="项目实战" class="dropdown-title"><span class="title">项目实战</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/microservices/springcloudalibaba/2022-04-02-SpringCloudAlibaba专栏开篇.html" class="nav-link">
  SpringCloud Alibaba实战
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="渗透技术" class="dropdown-title"><span class="title">渗透技术</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/hack/environment/2022-04-17-001-安装Kali系统.html" class="nav-link">
  基础环境篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/tools/2022-04-17-001-使用Easy-Creds工具攻击无线网络.html" class="nav-link">
  渗透工具篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/horse/2022-05-02-001-各种一句话木马大全.html" class="nav-link">
  木马篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/sql/2022-05-02-001-sqli-labs-master下载与安装.html" class="nav-link">
  SQL注入篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/shell/2022-05-02-001-各种解析漏洞拿shell.html" class="nav-link">
  漏洞拿Shell篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/crack/2022-05-02-001-使用rarcrack暴力破解RAR-ZIP-7Z压缩包.html" class="nav-link">
  暴力破解篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/bash/2022-05-02-001-3389脚本开启代码(vbs版).html" class="nav-link">
  渗透脚本篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/raising/2022-05-02-001-数据库提权.html" class="nav-link">
  数据与系统提权篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/client/2022-05-02-001-浏览器渗透.html" class="nav-link">
  客户端渗透篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/sociology/2022-05-02-001-Metasploit之社会工程学工具包.html" class="nav-link">
  社会工程学
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/question/2022-05-02-001-HTTP错误4031禁止访问-执行访问被拒绝.html" class="nav-link">
  问题记录篇
</a></li></ul></div></div><div class="nav-item"><a href="/md/interview/2022-04-18-001-面试必问-聊聊JVM性能调优.html" class="nav-link">
  面试必问系列
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="📚PDF" class="dropdown-title"><span class="title">📚PDF</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          出版图书
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/knowledge/book/2022-03-29-深入理解分布式事务.html" class="nav-link">
  《深入理解分布式事务：原理与实战》
</a></li><li class="dropdown-subitem"><a href="/md/knowledge/book/2022-03-29-MySQL技术大全.html" class="nav-link">
  《MySQL技术大全：开发、优化与运维实战》
</a></li><li class="dropdown-subitem"><a href="/md/knowledge/book/2022-03-29-海量数据处理与大数据技术实战.html" class="nav-link">
  《海量数据处理与大数据技术实战》
</a></li></ul></li><li class="dropdown-item"><h4>
          电子书籍
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/knowledge/pdf/2022-03-30-《冰河的渗透实战笔记》电子书，442页，37万字，正式发布.html" class="nav-link">
  冰河的渗透实战笔记
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="关于" class="dropdown-title"><span class="title">关于</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/about/me/about-me.html" class="nav-link">
  关于自己
</a></li><li class="dropdown-item"><!----> <a href="/md/about/study/default.html" class="nav-link">
  关于学习
</a></li><li class="dropdown-item"><!----> <a href="/md/about/job/default.html" class="nav-link">
  关于职场
</a></li></ul></div></div><div class="nav-item"><a href="https://space.bilibili.com/517638832" target="_blank" rel="noopener noreferrer" class="nav-link external">
  B站
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://github.com/binghe001/BingheGuide" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/md/other/guide-to-reading.html" class="nav-link">
  导读
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="核心技术" class="dropdown-title"><span class="title">核心技术</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          Java核心技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/core/java/basics/2022-04-28-全网最全正则表达式总结.html" class="nav-link">
  Java基础
</a></li><li class="dropdown-subitem"><a href="/md/core/java/advanced/default.html" class="nav-link">
  Java进阶
</a></li><li class="dropdown-subitem"><a href="/md/core/java/senior/default.html" class="nav-link">
  Java高级
</a></li><li class="dropdown-subitem"><a href="/md/core/java/java8/2022-03-31-001-Java8有哪些新特性呢？.html" class="nav-link">
  Java8新特性
</a></li></ul></li><li class="dropdown-item"><h4>
          Spring核心技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/core/spring/ioc/2022-04-04-001-聊聊Spring注解驱动开发那些事儿.html" class="nav-link">
  IOC核心技术
</a></li><li class="dropdown-subitem"><a href="/md/core/spring/aop/default.html" class="nav-link">
  AOP核心技术
</a></li></ul></li><li class="dropdown-item"><h4>
          JVM核心技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/core/jvm/2022-04-18-001-JVM调优的几种场景.html" class="nav-link">
  JVM调优技术
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="性能调优" class="dropdown-title"><span class="title">性能调优</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/performance/jvm/default.html" class="nav-link">
  JVM性能调优
</a></li><li class="dropdown-item"><!----> <a href="/md/performance/tomcat/default.html" class="nav-link">
  Tomcat性能调优
</a></li><li class="dropdown-item"><!----> <a href="/md/performance/mysql/default.html" class="nav-link">
  MySQL性能调优
</a></li><li class="dropdown-item"><!----> <a href="/md/performance/system/default.html" class="nav-link">
  操作系统性能调优
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="并发编程" class="dropdown-title"><span class="title">并发编程</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/concurrent/bottom/default.html" class="nav-link">
  底层技术
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/source/2020-03-30-001-一文搞懂线程与多线程.html" class="nav-link">
  源码分析
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/basics/2020-03-30-001-明明中断了线程，却为何不起作用呢？.html" class="nav-link">
  基础案例
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/ActualCombat/default.html" class="nav-link">
  实战案例
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/interview/default.html" class="nav-link">
  面试
</a></li><li class="dropdown-item"><!----> <a href="/md/concurrent/framework/default.html" class="nav-link">
  系统架构
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="框架源码" class="dropdown-title"><span class="title">框架源码</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/frame/spring/default.html" class="nav-link">
  Spring源码
</a></li><li class="dropdown-item"><!----> <a href="/md/frame/springmvc/default.html" class="nav-link">
  SpringMVC源码
</a></li><li class="dropdown-item"><!----> <a href="/md/frame/mybatis/default.html" class="nav-link">
  MyBatis源码
</a></li><li class="dropdown-item"><!----> <a href="/md/frame/dubbo/default.html" class="nav-link">
  Dubbo源码
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="分布式" class="dropdown-title"><span class="title">分布式</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          缓存技术
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/cache/default.html" class="nav-link">
  Redis
</a></li></ul></li><li class="dropdown-item"><h4>
          服务注册发现
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/zookeeper/default.html" class="nav-link">
  Zookeeper
</a></li></ul></li><li class="dropdown-item"><h4>
          消息中间件
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/mq/rabbitmq/default.html" class="nav-link">
  RabbitMQ
</a></li><li class="dropdown-subitem"><a href="/md/distributed/mq/rocketmq/default.html" class="nav-link">
  RocketMQ
</a></li><li class="dropdown-subitem"><a href="/md/distributed/mq/kafka/default.html" class="nav-link">
  Kafka
</a></li></ul></li><li class="dropdown-item"><h4>
          网络通信
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/netty/default.html" class="nav-link">
  Netty
</a></li></ul></li><li class="dropdown-item"><h4>
          远程调用
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/dubbo/default.html" class="nav-link">
  Dubbo
</a></li></ul></li><li class="dropdown-item"><h4>
          数据库
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/mongodb/default.html" class="nav-link">
  MongoDB
</a></li></ul></li><li class="dropdown-item"><h4>
          搜索引擎
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/distributed/es/default.html" class="nav-link">
  ElasticSearch
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="微服务" class="dropdown-title"><span class="title">微服务</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/microservices/springboot/default.html" class="nav-link">
  SpringBoot
</a></li><li class="dropdown-item"><!----> <a href="/md/microservices/springcloudalibaba/2022-04-02-SpringCloudAlibaba专栏开篇.html" class="nav-link">
  SpringCloudAlibaba
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="中间件" class="dropdown-title"><span class="title">中间件</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/middleware/bytecode/2022-04-11-001-工作多年的你依然重复做着CRUD-是否接触过这种技术.html" class="nav-link">
  字节码编程
</a></li><li class="dropdown-item"><!----> <a href="/md/middleware/threadpool/default.html" class="nav-link">
  手写线程池
</a></li><li class="dropdown-item"><!----> <a href="/md/middleware/limiter/default.html" class="nav-link">
  分布式限流
</a></li><li class="dropdown-item"><!----> <a href="/md/middleware/independent/default.html" class="nav-link">
  开源项目
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="项目实战" class="dropdown-title"><span class="title">项目实战</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/microservices/springcloudalibaba/2022-04-02-SpringCloudAlibaba专栏开篇.html" class="nav-link">
  SpringCloud Alibaba实战
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="渗透技术" class="dropdown-title"><span class="title">渗透技术</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/hack/environment/2022-04-17-001-安装Kali系统.html" class="nav-link">
  基础环境篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/tools/2022-04-17-001-使用Easy-Creds工具攻击无线网络.html" class="nav-link">
  渗透工具篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/horse/2022-05-02-001-各种一句话木马大全.html" class="nav-link">
  木马篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/sql/2022-05-02-001-sqli-labs-master下载与安装.html" class="nav-link">
  SQL注入篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/shell/2022-05-02-001-各种解析漏洞拿shell.html" class="nav-link">
  漏洞拿Shell篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/crack/2022-05-02-001-使用rarcrack暴力破解RAR-ZIP-7Z压缩包.html" class="nav-link">
  暴力破解篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/bash/2022-05-02-001-3389脚本开启代码(vbs版).html" class="nav-link">
  渗透脚本篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/raising/2022-05-02-001-数据库提权.html" class="nav-link">
  数据与系统提权篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/client/2022-05-02-001-浏览器渗透.html" class="nav-link">
  客户端渗透篇
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/sociology/2022-05-02-001-Metasploit之社会工程学工具包.html" class="nav-link">
  社会工程学
</a></li><li class="dropdown-item"><!----> <a href="/md/hack/question/2022-05-02-001-HTTP错误4031禁止访问-执行访问被拒绝.html" class="nav-link">
  问题记录篇
</a></li></ul></div></div><div class="nav-item"><a href="/md/interview/2022-04-18-001-面试必问-聊聊JVM性能调优.html" class="nav-link">
  面试必问系列
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="📚PDF" class="dropdown-title"><span class="title">📚PDF</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
          出版图书
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/knowledge/book/2022-03-29-深入理解分布式事务.html" class="nav-link">
  《深入理解分布式事务：原理与实战》
</a></li><li class="dropdown-subitem"><a href="/md/knowledge/book/2022-03-29-MySQL技术大全.html" class="nav-link">
  《MySQL技术大全：开发、优化与运维实战》
</a></li><li class="dropdown-subitem"><a href="/md/knowledge/book/2022-03-29-海量数据处理与大数据技术实战.html" class="nav-link">
  《海量数据处理与大数据技术实战》
</a></li></ul></li><li class="dropdown-item"><h4>
          电子书籍
        </h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/md/knowledge/pdf/2022-03-30-《冰河的渗透实战笔记》电子书，442页，37万字，正式发布.html" class="nav-link">
  冰河的渗透实战笔记
</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="关于" class="dropdown-title"><span class="title">关于</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/md/about/me/about-me.html" class="nav-link">
  关于自己
</a></li><li class="dropdown-item"><!----> <a href="/md/about/study/default.html" class="nav-link">
  关于学习
</a></li><li class="dropdown-item"><!----> <a href="/md/about/job/default.html" class="nav-link">
  关于职场
</a></li></ul></div></div><div class="nav-item"><a href="https://space.bilibili.com/517638832" target="_blank" rel="noopener noreferrer" class="nav-link external">
  B站
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://github.com/binghe001/BingheGuide" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>《深入理解分布式事务：原理与实战》</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/md/knowledge/book/2022-03-29-深入理解分布式事务.html" class="active sidebar-link">久等了，冰河的《深入理解分布式事务：原理与实战》终于出版了</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>《MySQL技术大全：开发、优化与运维实战》</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/md/knowledge/book/2022-03-29-MySQL技术大全.html" class="sidebar-link">久等了，冰河的《MySQL技术大全：开发、优化与运维实战》终于出版了</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>《海量数据处理与大数据技术实战》</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/md/knowledge/book/2022-03-29-海量数据处理与大数据技术实战.html" class="sidebar-link">久等了，冰河的《海量数据处理与大数据技术实战》终于出版了</a></li></ul></section></li></ul> </aside> <div><main class="page"> <div class="theme-default-content content__default"><h1 id="久等了-冰河的《深入理解分布式事务-原理与实战》终于出版了"><a href="#久等了-冰河的《深入理解分布式事务-原理与实战》终于出版了" class="header-anchor">#</a> 久等了，冰河的《深入理解分布式事务：原理与实战》终于出版了</h1> <p><strong>大家好，我是冰河~~</strong></p> <p>继出版《<a href="/md/knowledge/book/2022-03-29-海量数据处理与大数据技术实战.html">海量数据处理与大数据技术实战</a>》和《<a href="/md/knowledge/book/2022-03-29-MySQL技术大全.html">MySQL技术大全：开发、优化与运维实战</a>》之后，冰河联合猫大人一起推出了另一部硬核书籍《<a href="/md/knowledge/book/2022-03-29-深入理解分布式事务.html">深入理解分布式事务：原理与实战</a>》。</p> <p><img alt="" data-src="https://img-blog.csdnimg.cn/5ee367b68023466a87f66763a64a4133.jpg" loading="lazy" class="lazy"></p> <p>随着互联网的不断发展，互联网企业的业务在飞速变化，推动着系统架构也在不断地发生变化。总体来说，系统架构大致经历了<strong>单体应用架构→垂直应用架构→分布式架构→SOA架构→微服务架构</strong>的演变。</p> <p>如今微服务技术越来越成熟，很多企业都采用微服务架构来支撑内部及对外的业务，尤其是在高并发大流量的电商业务场景下，微服务更是企业首选的架构模式。</p> <p>微服务的普及也带来了新的问题。原本单一的应用架构只需要连接一台数据库实例即可完成所有业务操作，业务方法的逻辑在一个事务中即可完成，涉及的所有数据库操作要么全部提交，要么全部不提交，很容易实现数据的一致性。</p> <p>而在微服务架构下，原本单一的应用被拆分为一个个很小的服务，每个服务都有其独立的业务和数据库，服务与服务之间的交互通过接口或者远程过程调用（Remote Procedure Call，RPC）的方式进行，此时，服务与服务之间的数据一致性问题就变得棘手了。</p> <p>因为微服务这种架构模式本质上就是多个应用连接多个数据库共同完成一组业务逻辑，所以数据一致性问题就凸显出来了。除此之外，多个应用连接同一个数据库和单个应用连接多个数据库也会产生数据一致性问题。可以这么说，<strong>在互联网行业，任何企业都会或多或少地遇到数据一致性问题。业界将这种数据一致性问题称为分布式事务问题</strong>。</p> <p>为了解决分布式事务问题，业界提出了一些著名的理论，比如CAP理论和Base理论，并针对这些理论提出了很多解决方案，比如解决强一致性分布式事务的DTP模型、XA事务、2PC模型、3PC模型，解决最终一致性分布式事务的TCC、可靠消息最终一致性、最大努力通知型等模型。不少企业和开源组织，甚至个人都基于这些模型实现了比较通用的分布式事务框架。</p> <p><strong>深入掌握分布式事务已然成为互联网行业中每个中高级开发人员和架构师必须掌握的技能</strong>，而熟练掌握分布式事务产生的各种场景和解决方案也成为各大互联网公司对应聘者的基本要求。</p> <p><strong>《深入理解分布式事务：原理与实战》从实际需求出发，全面且细致地介绍了有关分布式事务的基础知识、解决方案、实现原理和源码实战</strong>。</p> <p><img alt="" data-src="https://img-blog.csdnimg.cn/3a7651230c744c0e925351f2f4307b1d.png#pic_center" loading="lazy" class="lazy"><br><br></p> <p><strong>5</strong> 个维度全面展开</p> <p><strong>20</strong> 位大厂专家力荐</p> <p><strong>10</strong> 个框架的分布式事务实现</p> <p><strong>6</strong> 种通用分布式事务解决方案</p> <p><strong>8</strong> 种分布式事务原理解析</p> <p><strong>4</strong> 个生产环境综合案例</p> <p><strong>100</strong> 余幅原理图和流程图<br><br></p> <h2 id="_1本书特色"><a href="#_1本书特色" class="header-anchor">#</a> 1本书特色</h2> <h3 id="_5个维度展开-分布式事务从0到100"><a href="#_5个维度展开-分布式事务从0到100" class="header-anchor">#</a> <strong>5个维度展开，分布式事务从0到100</strong></h3> <p><strong>NO.1</strong> <strong>基础知识维度</strong></p> <p>事务和分布式事务的概念和基础知识，MySQL和Spring的事务实现原理</p> <p><strong>NO.2</strong> <strong>解决方案维度</strong></p> <p>强一致性分布式事务解决方案、Z终一致性分布式事务解决方案</p> <p><strong>NO.3</strong> <strong>原理分析维度</strong></p> <p>XA强一致性分布式事务、TCC分布式事务、可靠消息Z终一致性分布式事务、Z大努力通知型分布式事务的原理</p> <p><strong>NO.4</strong> <strong>源码实现维度</strong></p> <p>Atomikos，Narayana框架实现XA强一致性分布式事务解决方案，Hmily分布式事务框架实现TCC分布式事务</p> <p><strong>NO.5</strong> <strong>工程实践维度</strong></p> <p>XA强一致性分布式事务、TCC分布式事务、可靠消息Z终一致性分布式事务和Z大努力通知型分布式事务的工程实践方法</p> <h3 id="大量图解和开发案例-学习事半功倍"><a href="#大量图解和开发案例-学习事半功倍" class="header-anchor">#</a> <strong>大量图解和开发案例，学习事半功倍</strong></h3> <p>为了方便读者理解，每章根据需要配有相关的原理图和流程图，并提供完整的实战案例源码。书中的每个解决方案都经过了高并发大流量生产环境的考验，可以直接拿来解决实际生产环境中的分布式事务问题。</p> <p><img alt="" data-src="https://img-blog.csdnimg.cn/e939b29d49274defaec3e4c305125ad0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5YawIOaysw==,size_18,color_FFFFFF,t_70,g_se,x_16#pic_center" loading="lazy" class="lazy"></p> <center>图 1-2 本地事务的执行流程</center><br><br> <p><img alt="" data-src="https://img-blog.csdnimg.cn/17bff4eab8224517ad589c1453679973.png" loading="lazy" class="lazy"></p> <center>图 8-4 XA 分布式事务流程图</center><br><br> <p><img alt="" data-src="https://img-blog.csdnimg.cn/16742aa215134c719b2810e823f54c74.png" loading="lazy" class="lazy"></p> <center>图 10-3 独立消息服务实现的分布式事务</center><br> <p>小伙伴们可以参考本书的案例进行学习，并运行本书的<strong>案例代码</strong>，以更深入地理解和掌握分布式事务。这些案例代码和图解的draw.io源文件收录于随书资料里，读者可以从下面的链接获取相关内容。</p> <p>GitHub：<a href="https://github.com/dromara/distribute-transaction" target="_blank" rel="noopener noreferrer">https://github.com/dromara/distribute-transaction<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <p>Gitee：<a href="https://gitee.com/dromara/distribute-transaction" target="_blank" rel="noopener noreferrer">https://gitee.com/dromara/distribute-transaction<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <h2 id="_2本书主要内容"><a href="#_2本书主要内容" class="header-anchor">#</a> 2本书主要内容</h2> <p>本书分为如下四个部分。</p> <p><strong>第一部分　分布式事务基础（第1～5章）</strong></p> <p>首先介绍事务的基本概念，然后介绍MySQL事务和Spring事务的实现原理，最后介绍分布式事务的基本概念和理论知识。</p> <p><strong>第二部分　分布式事务解决方案（第6～7章）</strong></p> <p>以大量图解的方式详细介绍了分布式事务的各种解决方案，包括强一致性分布式事务解决方案和最终一致性分布式事务解决方案。</p> <p><strong>第三部分　分布式事务原理（第8～11章）</strong></p> <p>以大量图解的方式详细讲解了分布式事务的原理，包括XA强一致性分布式事务、TCC分布式事务、可靠消息最终一致性分布式事务和最大努力通知型分布式事务。</p> <p><strong>第四部分　分布式事务源码与实战（第12～17章）</strong></p> <p>首先详细讲解了业界比较知名的ShardingSphere框架实现XA分布式事务的源码，然后详细剖析了Dromara开源社区的Hmily分布式事务框架实现TCC分布式事务的源码，最后分别对XA强一致性分布式事务、TCC分布式事务、可靠消息最终一致性分布式事务和最大努力通知型分布式事务进行了实战案例讲解。</p> <h2 id="_3读者对象"><a href="#_3读者对象" class="header-anchor">#</a> 3读者对象</h2> <p>本书适合以下几类读者阅读：</p> <ul><li>互联网从业者，如中高级开发人员、架构师、技术经理、技术专家；</li> <li>需要系统学习分布式事务的开发人员；</li> <li>需要提高分布式事务开发水平的人员；</li> <li>需要时常查阅分布式事务技术资料和开发案例的人员。</li></ul> <h2 id="_4作者简介"><a href="#_4作者简介" class="header-anchor">#</a> 4作者简介</h2> <p><strong>肖宇</strong></p> <p>分布式事务架构专家</p> <p>Apache ShenYu（incubating）网关创始人，Dromara开源组织创始人，Hmily、RainCat、Myth等分布式事务框架的作者。Apache ShardingSphere Committer。</p> <p>热爱开源，追求优雅代码。有丰富的微服务架构经验，尤其擅长微服务技术栈中的分布式事务、微服务架构，分布式数据库、API网关等解决方案。</p> <p><strong>冰河</strong></p> <p>互联网高级技术专家、MySQL技术专家、分布式事务架构专家。</p> <p>多年来，一直致力于分布式系统架构、微服务、分布式数据库、分布式事务与大数据技术的研究，在高并发、高可用、高可扩展性、高可维护性和大数据等领域拥有丰富的架构经验。</p> <p>可视化多数据源数据异构中间件mykit-data作者；《海量数据处理与大数据技术实战》和《MySQL技术大全：开发、优化与运维实战》作者；“冰河技术”微信公众号维护者。</p> <h2 id="_5专家推荐"><a href="#_5专家推荐" class="header-anchor">#</a> 5专家推荐</h2> <p><strong>来自京东、阿里、腾讯、蚂蚁金服、滴滴、饿了么、58集团、IBM等互联网大厂及Apache软件基金会的近20位专家高口碑力荐。</strong></p> <p>本书从分布式的原理和实践两个维度出发，立体而全面地讲解了分布式事务的基础理论、主流数据库对分布式事务的支持情况、主流分布式框架对分布式事务的实现，并重点解析了Hmily开源分布式事务框架项目的核心源码，让读者可以从不同维度了解分布式事务的理论与实现。我衷心希望看到这本书的读者能有巨大的收获，也希望肖宇持之以恒，安心编码，热心著书。</p> <p><strong>——刘启荣　京东科技技术总监</strong></p> <p>本书结合了作者在多个开源分布式事务框架项目上积累的经验，详细且全面地阐述了分布式事务的概念、实现原理和最佳实践。建议对这方面感兴趣的读者阅读。</p> <p><strong>——史少锋 Apache Member、Apache Kylin PMC主席</strong></p> <p>本书结合了作者在多个开源分布式事务框架项目上积累的经验，详细且全面地阐述了分布式事务的概念、实现原理和最佳实践。建议对这方面感兴趣的读者阅读。——史少锋 Apache Member、Apache Kylin PMC主席本书源于企业级真实实践，覆盖完整的分布式事务解决方案。书中通过企业级真实案例，深入浅出地剖析分布式事务的架构设计，是分布式事务领域的实践类好书，推荐阅读。</p> <p><strong>——孙玄　奈学教育创始人/CEO、前58集团技术委员会主席</strong></p> <p>本书涵盖了分布式事务的概念与理论、分布式事务在不同业务场景中的解决方案与最佳实践以及分布式事务的原理与源码实战，是分布式事务领域不可多得的一本好书。如果要系统性地了解分布式事务，我强烈推荐肖宇和冰河的这本书。</p> <p><strong>——沈剑　 互联网架构专家、快狗打车CTO</strong></p> <p>如今，对于分布式事务的讨论已经很多了，虽然有多个分布式事务项目已经开源，但仍在早期的思想框架内。本书对分布式事务做了全面的梳理和总结，值得推荐。</p> <p><strong>——于君泽 某互联网大厂资深技术专家，《深入分布式缓存》联合作者</strong></p> <p>在分布式应用系统中，特别是在金融相关的场景下，分布式事务是大家都关注的核心技术，同样也是系统的技术难点。本书从数据库和服务的分布式基础开始，由浅入深阐述了分布式事务的原理、解决方案。这种以框架开发者视角分享的分布式事务实现的源码和实践用例，对于应用架构师和开发者都有极大的价值。</p> <p><strong>——郑灏　京东科技高级技术总监</strong></p> <p>分布式事务是伴随分布式数据库架构发展而衍生出的关键技术，是影响分布式数据库市场竞争力的关键。本书深入浅出地讲解了分布式事务的基本原理和应用实践，具有很好的指导意义，适合数据库研发人员、数据库架构师和DBA。</p> <p><strong>——高新刚　京东科技数据库研发负责人</strong></p> <p>本书深入浅出、通俗易懂，不论是对入门型还是进阶型的微服务爱好者都有一定的指导和借鉴意义。</p> <p><strong>——沈建林　京东科技中间件团队负责人</strong></p> <p>如今，越来越多的企业开始面向广阔的数字生态搭建企业应用，而对这些需要升级技术底座的企业来说，分布式事务成为要解决的关键性技术问题，相信这本书一定能很好地帮读者答疑解惑！</p> <p><strong>——付晓岩　IBM副合伙人、资深企业级业务架构专家、</strong></p> <p><strong>《企业级业务架构设计：方法论与实践》和《银行数字化转型》作者</strong></p> <p>本书从事务的基本概念、数据强一致性模型的2PC与3PC实现，到Base补偿式事务等方面，详细描述了分布式事务的应用场景以及多种分布式系统架构的演进。这是一本深入讲解分布式事务原理和丰富应用的很好的参考书。</p> <p><strong>——刘勋　滴滴大数据高级技术专家，Apache Hadoop/Zeppelin提交者、</strong></p> <p><strong>Submarine提交者及PMC</strong></p> <p>本书由浅入深地介绍了各分布式事务的优缺点和适用场景，理论结合实践，大大减少了事务相关资料阅读与理解的难度，对于想深入学习事务的读者来说非常值得入手!</p> <p><strong>——代立冬　Apache DolphinScheduler PMC主席、Apache Incubator PMC</strong></p> <p>本书以开源分布式框架作者的视角，全面总结了事务的核心技术，内容涵盖了广泛使用的MySQL和Spring的事务机制、业界分布式事务架构理论以及源码与实战，适合希望深入理解事务机制、提升软件设计与架构经验的读者阅读。</p> <p><strong>——杨晓峰　腾讯专家工程师、腾讯硬件委员会执委、开源联盟主委会成员、</strong></p> <p><strong>大数据专家团成员、OpenJDK提交者</strong></p> <p>专门以事务为主题的图书并不常见。本书系统地梳理了事务的概念，针对数据库到中间件和框架类的事务实现，带领读者抽丝剥茧，帮助读者从全景到细节，建立对事务的深入理解，是工程师深度探索技术的优质读物。</p> <p><strong>——张亮　Apache ShardingSphere PMC主席、SphereEx CEO</strong></p> <p>本书由浅入深、由点到面，完整地将分布式事务相关理论、解决方案以及源码实战呈现在读者面前。推荐给正在寻求突破和快速成长的技术人。</p> <p><strong>——曾波（波姐）　资深互联网架构师、《Java性能优化实践》译者</strong></p> <p>本书不仅包含了肖宇和冰河积累多年的实战经验，更从多种场景出发，详解可落地方案，而且从多种分布式事务框架的使用和原理入手，带领读者一步步揭开分布式事务的面纱。这本书非常不错，强烈推荐大家阅读学习。</p> <p><strong>——程超　《高可用可伸缩微服务架构》作者</strong></p> <p>本书作者在微服务领域深耕多年，拥有深厚的分布式事务开发经验，不仅在公司主导一线开发，同时也是开源分布式事务框架Hmily项目的作者。本书字里行间蕴含着作者对分布式事务独到的见解，内容上不仅有原理和业界主流的解决方案，还包含了一线项目的实战和源码解析。无论是刚入门的开发者，还是从事开发和研究工作多年的资深工程师，本书都会让你受益匪浅。</p> <p><strong>——张永伦　Apache ShardingSphere PMC/ Apache ShenYu PPMC</strong></p> <p>本书从MySQL InnoDB引擎的事务实现讲起，逐步扩展到分布式事务场景，从原理到工程实践，理论结合实践，是分布式事务领域的经典之作，无论是对分布式事务的初学者还是具有一定开发实践经验的工程师或架构师，都有一定的参考和借鉴意义。</p> <p><strong>——于雨　蚂蚁金服dubbo go项目负责人</strong></p> <p>冰河是一个对技术非常严谨和有追求的人，尤其对分布式领域的分布式事务有着深刻的理解和丰富的架构经验。本书把分布式事务的基础、原理、解决方案和实战都讲得非常透彻，强烈推荐每一位程序员阅读。</p> <p><strong>——程军　公众号“军哥手记”维护者，前饿了么技术总监</strong></p> <p>无论是传统的单体架构，还是目前主流的分布式架构，事务都是绕不开的技术难题。本书从基本概念到原理介绍，再到主流的解决方案，系统地梳理了分布式事务的核心知识，既有理论，又有实战，对于微服务设计有很好的指导意义，也是市面上围绕这一主题少见的有深度的好书。</p> <p><strong>——骆俊武　京东新零售业务机构负责人</strong></p> <h2 id="_6目录"><a href="#_6目录" class="header-anchor">#</a> 6目录</h2> <div class="language-bash line-numbers-mode"><pre class="language-bash"><code>推荐语

序

前言

第一部分　分布式事务基础

第1章　事务的基本概念2

<span class="token number">1.1</span>　事务的特性2

<span class="token number">1.1</span>.1　原子性3

<span class="token number">1.1</span>.2　一致性3

<span class="token number">1.1</span>.3　隔离性3

<span class="token number">1.1</span>.4　持久性3

<span class="token number">1.2</span>　事务的类型4

<span class="token number">1.2</span>.1　扁平事务4

<span class="token number">1.2</span>.2　带有保存点的扁平事务4

<span class="token number">1.2</span>.3　链式事务5

<span class="token number">1.2</span>.4　嵌套事务5

<span class="token number">1.2</span>.5　分布式事务5

<span class="token number">1.3</span>　本地事务5

<span class="token number">1.3</span>.1　基本概念6

<span class="token number">1.3</span>.2　本地事务的执行流程6

<span class="token number">1.3</span>.3　本地事务的优缺点7

<span class="token number">1</span>.4MySQL事务基础7

<span class="token number">1.4</span>.1　并发事务带来的问题7

<span class="token number">1.4</span>.2MySQL事务隔离级别9

<span class="token number">1.4</span>.3MySQL中各种事务隔离级别的区别10

<span class="token number">1.4</span>.4MySQL事务隔离级别最佳实践11

<span class="token number">1.4</span>.5MySQL中锁的分类19

<span class="token number">1.4</span>.6　死锁的产生和预防23

<span class="token number">1.4</span>.7MySQL中的死锁问题24

<span class="token number">1.4</span>.8InnoDB中的MVCC原理25

<span class="token number">1.5</span>　本章小结28

第2章　MySQL事务的实现原理29

<span class="token number">2</span>.1Redo Log29

<span class="token number">2.1</span>.1Redo Log基本概念29

<span class="token number">2.1</span>.2Redo Log基本原理30

<span class="token number">2.1</span>.3Redo Log刷盘规则30

<span class="token number">2.1</span>.4Redo Log刷盘最佳实践32

<span class="token number">2.1</span>.5Redo Log写入机制34

<span class="token number">2.1</span>.6Redo Log的LSN机制35

<span class="token number">2.1</span>.7Redo Log相关参数36

<span class="token number">2</span>.2Undo Log36

<span class="token number">2.2</span>.1Undo Log基本概念36

<span class="token number">2.2</span>.2Undo Log存储方式37

<span class="token number">2.2</span>.3Undo Log基本原理37

<span class="token number">2.2</span>.4Undo Log实现MVCC机制37

<span class="token number">2.2</span>.5Undo Log相关参数40

<span class="token number">2</span>.3BinLog41

<span class="token number">2.3</span>.1BinLog基本概念41

<span class="token number">2.3</span>.2BinLog记录模式41

<span class="token number">2.3</span>.3BinLog文件结构42

<span class="token number">2.3</span>.4BinLog写入机制43

<span class="token number">2.3</span>.5BinLog组提交机制43

<span class="token number">2.3</span>.6BinLog与Redo Log的区别45

<span class="token number">2.3</span>.7BinLog相关参数45

<span class="token number">2</span>.4MySQL事务流程46

<span class="token number">2.4</span>.1MySQL事务执行流程46

<span class="token number">2.4</span>.2MySQL事务恢复流程47

<span class="token number">2</span>.5MySQL中的XA事务48

<span class="token number">2.5</span>.1XA事务的基本原理48

<span class="token number">2.5</span>.2MySQL XA事务语法49

<span class="token number">2.5</span>.3JDBC操作MySQL XA事务52

<span class="token number">2.6</span>　本章小结54

第3章　Spring事务的实现原理55

<span class="token number">3</span>.1Spring事务原理55

<span class="token number">3.1</span>.1JDBC直接操作事务55

<span class="token number">3.1</span>.2　使用Spring管理事务56

<span class="token number">3.1</span>.3Spring事务分类57

<span class="token number">3.1</span>.4Spring事务超时57

<span class="token number">3.1</span>.5Spring事务回滚规则57

<span class="token number">3</span>.2Spring事务三大接口57

<span class="token number">3.2</span>.1PlatformTransactionManager接口57

<span class="token number">3.2</span>.2TransactionDefinition接口58

<span class="token number">3.2</span>.3TransactionStatus接口60

<span class="token number">3</span>.3Spring事务隔离级别61

<span class="token number">3</span>.4Spring事务传播机制62

<span class="token number">3.4</span>.17种事务传播机制类型62

<span class="token number">3.4</span>.2　常用的事务传播类型65

<span class="token number">3</span>.5Spring事务嵌套最佳实践65

<span class="token number">3.5</span>.1　环境准备66

<span class="token number">3.5</span>.2　最佳实践场景一71

<span class="token number">3.5</span>.3　最佳实践场景二72

<span class="token number">3.5</span>.4　最佳实践场景三73

<span class="token number">3.5</span>.5　最佳实践场景四74

<span class="token number">3.5</span>.6　最佳实践场景五75

<span class="token number">3.5</span>.7　最佳实践场景六76

<span class="token number">3.5</span>.8　最佳实践场景七77

<span class="token number">3</span>.6Spring事务失效的场景79

<span class="token number">3.6</span>.1　数据库不支持事务79

<span class="token number">3.6</span>.2　事务方法未被Spring管理79

<span class="token number">3.6</span>.3　方法没有被public修饰79

<span class="token number">3.6</span>.4　同一类中的方法调用80

<span class="token number">3.6</span>.5　未配置事务管理器80

<span class="token number">3.6</span>.6　方法的事务传播类型不支持事务81

<span class="token number">3.6</span>.7　不正确地捕获异常81

<span class="token number">3.6</span>.8　标注错误的异常类型82

<span class="token number">3.7</span>　本章小结83

第4章　分布式事务的基本概念84

<span class="token number">4.1</span>　分布式系统架构84

<span class="token number">4.1</span>.1　产生的背景84

<span class="token number">4.1</span>.2　架构目标和架构原则85

<span class="token number">4.2</span>　分布式系统架构演进86

<span class="token number">4.2</span>.1　单体应用架构86

<span class="token number">4.2</span>.2　垂直应用架构87

<span class="token number">4.2</span>.3　分布式架构88

<span class="token number">4.2</span>.4SOA架构89

<span class="token number">4.2</span>.5　微服务架构89

<span class="token number">4.3</span>　分布式事务场景90

<span class="token number">4.3</span>.1　跨JVM进程90

<span class="token number">4.3</span>.2　跨数据库实例91

<span class="token number">4.3</span>.3　多服务访问单数据库91

<span class="token number">4.4</span>　数据一致性92

<span class="token number">4.4</span>.1　数据的一致性问题92

<span class="token number">4.4</span>.2　数据一致性解决方案93

<span class="token number">4.5</span>　本章小结93

第5章　分布式事务的理论知识94

<span class="token number">5</span>.1CAP理论94

<span class="token number">5.1</span>.1　一致性94

<span class="token number">5.1</span>.2　可用性95

<span class="token number">5.1</span>.3　分区容忍性95

<span class="token number">5.1</span>.4CAP的组合96

<span class="token number">5</span>.2Base理论97

<span class="token number">5.3</span>　本章小结98

第二部分　分布式事务解决方案

第6章　强一致性分布式事务解决方案100

<span class="token number">6.1</span>　强一致性事务概述100

<span class="token number">6.1</span>.1　典型方案100

<span class="token number">6.1</span>.2　适用场景101

<span class="token number">6.1</span>.3　优缺点101

<span class="token number">6</span>.2DTP模型101

<span class="token number">6.2</span>.1DTP模型的重要概念101

<span class="token number">6.2</span>.2DTP模型的执行流程102

<span class="token number">6</span>.32PC模型102

<span class="token number">6.3</span>.12PC模型的执行流程103

<span class="token number">6.3</span>.2　事务执行成功的流程103

<span class="token number">6.3</span>.3　事务执行失败的流程104

<span class="token number">6.3</span>.42PC模型存在的问题105

<span class="token number">6</span>.43PC模型105

<span class="token number">6.4</span>.1　事务执行成功的流程105

<span class="token number">6.4</span>.2　事务执行失败的流程106

<span class="token number">6.4</span>.33PC模型中存在的问题108

<span class="token number">6.5</span>　本章小结108

第7章　最终一致性分布式事务解决方案109

<span class="token number">7.1</span>　最终一致性分布式事务概述109

<span class="token number">7.1</span>.1　典型方案109

<span class="token number">7.1</span>.2　适用场景110

<span class="token number">7.1</span>.3　优缺点110

<span class="token number">7.2</span>　服务模式110

<span class="token number">7.2</span>.1　可查询操作111

<span class="token number">7.2</span>.2　幂等操作111

<span class="token number">7.2</span>.3TCC操作112

<span class="token number">7.2</span>.4　可补偿操作113

<span class="token number">7</span>.3TCC解决方案113

<span class="token number">7.3</span>.1　适用场景114

<span class="token number">7.3</span>.2　需要实现的服务模式114

<span class="token number">7.3</span>.3　方案的执行流程114

<span class="token number">7.3</span>.4　方案的优缺点115

<span class="token number">7.3</span>.5　需要注意的问题116

<span class="token number">7.4</span>　可靠消息最终一致性解决方案117

<span class="token number">7.4</span>.1　适用场景117

<span class="token number">7.4</span>.2　需要实现的服务模式117

<span class="token number">7.4</span>.3　方案的执行流程118

<span class="token number">7.4</span>.4　方案的优缺点119

<span class="token number">7.4</span>.5　需要注意的问题120

<span class="token number">7.5</span>　最大努力通知型解决方案120

<span class="token number">7.5</span>.1　适用场景120

<span class="token number">7.5</span>.2　需要实现的服务模式121

<span class="token number">7.5</span>.3　方案的执行流程121

<span class="token number">7.5</span>.4　方案的优缺点122

<span class="token number">7.5</span>.5　需要注意的问题122

<span class="token number">7.5</span>.6　最大努力通知与可靠消息最终一致性的区别123

<span class="token number">7.6</span>　本章小结123

第三部分　分布式事务原理

第8章　XA强一致性分布式事务原理126

<span class="token number">8</span>.1X/Open DTP模型与XA规范126

<span class="token number">8.1</span>.1DTP模型126

<span class="token number">8.1</span>.2XA规范127

<span class="token number">8.1</span>.3JTA规范127

<span class="token number">8.1</span>.4XA二阶段提交128

<span class="token number">8</span>.2MySQL对XA规范的支持129

<span class="token number">8.2</span>.1MySQL XA事务的语法129

<span class="token number">8.2</span>.2MySQL XID详解129

<span class="token number">8.2</span>.3MySQL XA事务的状态130

<span class="token number">8.2</span>.4MySQL XA的问题131

<span class="token number">8</span>.3XA规范的问题思考132

<span class="token number">8.3</span>.1XA规范的缺陷132

<span class="token number">8.3</span>.2XA流程的优化与异常思考133

<span class="token number">8.3</span>.3　解决XA数据不一致的问题134

<span class="token number">8.3</span>.4　解决事务管理器的单点故障问题135

<span class="token number">8.4</span>　主流的解决方案135

<span class="token number">8.5</span>　本章小结136

第9章　TCC分布式事务原理137

<span class="token number">9</span>.1TCC核心思想137

<span class="token number">9</span>.2TCC实现原理139

<span class="token number">9.2</span>.1TCC核心组成139

<span class="token number">9.2</span>.2TCC核心原理140

<span class="token number">9</span>.3TCC核心流程142

<span class="token number">9.3</span>.1　业务场景介绍142

<span class="token number">9.3</span>.2Try阶段流程143

<span class="token number">9.3</span>.3Confirm阶段流程144

<span class="token number">9.3</span>.4Cancel阶段流程145

<span class="token number">9</span>.4TCC关键技术146

<span class="token number">9.5</span>　本章小结147

第10章　可靠消息最终一致性分布式事务原理148

<span class="token number">10.1</span>　基本原理148

<span class="token number">10.2</span>　本地消息表149

<span class="token number">10.2</span>.1　实现原理149

<span class="token number">10.2</span>.2　优缺点150

<span class="token number">10.3</span>　独立消息服务151

<span class="token number">10.3</span>.1　实现原理151

<span class="token number">10.3</span>.2　优缺点152

<span class="token number">10</span>.4RocketMQ事务消息153

<span class="token number">10.4</span>.1　实现原理153

<span class="token number">10.4</span>.2RocketMQ本地事务监听接口154

<span class="token number">10.5</span>　消息发送的一致性155

<span class="token number">10.5</span>.1　消息发送与确认机制155

<span class="token number">10.5</span>.2　消息发送的不一致性156

<span class="token number">10.5</span>.3　如何保证消息发送的一致性157

<span class="token number">10.6</span>　消息接收的一致性158

<span class="token number">10.6</span>.1　消息接收与确认机制158

<span class="token number">10.6</span>.2　消息接收的不一致性159

<span class="token number">10.6</span>.3　如何保证消息接收的一致性159

<span class="token number">10.7</span>　消息的可靠性161

<span class="token number">10.7</span>.1　消息发送的可靠性161

<span class="token number">10.7</span>.2　消息存储的可靠性161

<span class="token number">10.7</span>.3　消息消费的可靠性162

<span class="token number">10.8</span>　本章小结162

第11章　最大努力通知型分布式事务原理163

<span class="token number">11.1</span>　适用场景163

<span class="token number">11.2</span>　方案特点164

<span class="token number">11.3</span>　基本原理164

<span class="token number">11.4</span>　异常处理165

<span class="token number">11.5</span>　本章小结166

第四部分　分布式事务源码与实战

第12章　XA强一致性分布式事务解决方案源码解析168

<span class="token number">12.1</span>　分布式数据一致性场景的搭建168

<span class="token number">12.1</span>.1　构建环境168

<span class="token number">12.1</span>.2　准备环境169

<span class="token number">12.1</span>.3　修改配置169

<span class="token number">12.1</span>.4　启动171

<span class="token number">12.1</span>.5　验证171

<span class="token number">12</span>.2ShardingSphere对XA分布式事务方案的整合172

<span class="token number">12.2</span>.1ShardingTransactionManager接口172

<span class="token number">12.2</span>.2XATransactionManager接口174

<span class="token number">12.2</span>.3DataSourceSwapper类174

<span class="token number">12.2</span>.4XAConnectionWrapper接口175

<span class="token number">12.2</span>.5XA事务初始化175

<span class="token number">12.2</span>.6XA资源注册176

<span class="token number">12</span>.3ShardingSphere对Atomikos方案的实战与源码解析178

<span class="token number">12.3</span>.1Atomikos-XA分布式事务初始化流程178

<span class="token number">12.3</span>.2Atomikos-XA分布式事务Begin流程183

<span class="token number">12.3</span>.3Atomikos-XA分布式事务资源注册原理185

<span class="token number">12.3</span>.4Atomikos-XA分布式事务Commit流程186

<span class="token number">12.3</span>.5Atomikos-XA分布式事务Rollback流程191

<span class="token number">12.3</span>.6Atomikos-XA分布式事务恢复流程193

<span class="token number">12</span>.4ShardingSphere对Narayana方案的实战与源码解析198

<span class="token number">12.4</span>.1Narayana环境搭建198

<span class="token number">12.4</span>.2Narayana-XA分布式事务初始化流程199

<span class="token number">12.4</span>.3Narayana-XA分布式事务Begin流程206

<span class="token number">12.4</span>.4Narayana-XA分布式事务资源注册208

<span class="token number">12.4</span>.5Narayana-XA分布式事务Commit流程208

<span class="token number">12.4</span>.6Narayana-XA分布式事务Rollback流程211

<span class="token number">12.4</span>.7Narayana-XA分布式事务恢复流程212

<span class="token number">12.5</span>　本章小结216

第13章　Hmily-TCC分布式事务解决方案源码解析217

<span class="token number">13</span>.1Hmily-TCC分布式场景的搭建217

<span class="token number">13.1</span>.1　准备环境218

<span class="token number">13.1</span>.2　下载源码并编译220

<span class="token number">13.1</span>.3　修改配置220

<span class="token number">13.1</span>.4　启动程序222

<span class="token number">13.1</span>.5　验证223

<span class="token number">13</span>.2Hmily框架初始流程源码解析223

<span class="token number">13.2</span>.1　加载配置225

<span class="token number">13.2</span>.2　初始化事务日志存储229

<span class="token number">13.2</span>.3　初始化事务恢复调度器234

<span class="token number">13.2</span>.4　初始化事件分发器235

<span class="token number">13.2</span>.5　初始化Metrics监控信息236

<span class="token number">13</span>.3Hmily-TCC分布式事务源码解析238

<span class="token number">13.3</span>.1Try流程源码解析239

<span class="token number">13.3</span>.2Confirm流程源码解析253

<span class="token number">13.3</span>.3Cancel流程源码解析258

<span class="token number">13</span>.4Hmily对RPC框架的支持261

<span class="token number">13.4</span>.1　对Dubbo框架的支持261

<span class="token number">13.4</span>.2　对Spring Cloud框架的支持263

<span class="token number">13.4</span>.3　对BRPC框架的支持265

<span class="token number">13.4</span>.4　对Motan框架的支持267

<span class="token number">13.4</span>.5　对gRPC框架的支持268

<span class="token number">13.4</span>.6　对Sofa-RPC框架的支持270

<span class="token number">13.4</span>.7　对Tars框架的支持272

<span class="token number">13</span>.5Hmily-TCC事务恢复源码解析273

<span class="token number">13.5</span>.1　逻辑处理274

<span class="token number">13.5</span>.2　事务恢复275

<span class="token number">13.6</span>　本章小结276

第14章　XA强一致性分布式事务实战277

<span class="token number">14.1</span>　场景说明277

<span class="token number">14.2</span>　程序模块说明278

<span class="token number">14.3</span>　数据库表设计278

<span class="token number">14.4</span>　程序实现279

<span class="token number">14.4</span>.1　项目搭建279

<span class="token number">14.4</span>.2　持久层的实现287

<span class="token number">14.4</span>.3　业务逻辑层的实现288

<span class="token number">14.4</span>.4　接口层的实现289

<span class="token number">14.4</span>.5　项目启动类的实现290

<span class="token number">14.5</span>　测试程序290

<span class="token number">14.6</span>　本章小结292

第15章　TCC分布式事务实战293

<span class="token number">15.1</span>　场景说明293

<span class="token number">15.2</span>　程序模块说明294

<span class="token number">15.3</span>　数据库表设计295

<span class="token number">15.4</span>　实现项目公共模块297

<span class="token number">15.4</span>.1　项目搭建297

<span class="token number">15.4</span>.2　持久层的实现300

<span class="token number">15.4</span>.3Dubbo接口的定义304

<span class="token number">15.5</span>　实现转出银行微服务305

<span class="token number">15.5</span>.1　项目搭建305

<span class="token number">15.5</span>.2　业务逻辑层的实现311

<span class="token number">15.5</span>.3　接口层的实现313

<span class="token number">15.5</span>.4　项目启动类的实现313

<span class="token number">15.6</span>　实现转入银行微服务314

<span class="token number">15.6</span>.1　业务逻辑层的实现314

<span class="token number">15.6</span>.2　项目启动类的实现315

<span class="token number">15.7</span>　测试程序316

<span class="token number">15.8</span>　本章小结318

第16章　可靠消息最终一致性分布式事务实战319

<span class="token number">16.1</span>　场景说明319

<span class="token number">16.2</span>　程序模块说明321

<span class="token number">16</span>.3RocketMQ环境搭建与测试321

<span class="token number">16.3</span>.1　搭建Java环境321

<span class="token number">16.3</span>.2　搭建RocketMQ环境322

<span class="token number">16.3</span>.3　测试RocketMQ环境324

<span class="token number">16.4</span>　数据库表设计326

<span class="token number">16.5</span>　实现订单微服务328

<span class="token number">16.5</span>.1　项目搭建328

<span class="token number">16.5</span>.2　持久层的实现333

<span class="token number">16.5</span>.3　业务逻辑层的实现335

<span class="token number">16.5</span>.4　接口层的实现338

<span class="token number">16.5</span>.5　项目启动类的实现338

<span class="token number">16.6</span>　实现库存微服务339

<span class="token number">16.6</span>.1　项目搭建339

<span class="token number">16.6</span>.2　持久层的实现339

<span class="token number">16.6</span>.3　业务逻辑层的实现341

<span class="token number">16.6</span>.4　项目启动类的实现343

<span class="token number">16.7</span>　测试程序343

<span class="token number">16.8</span>　本章小结345

第17章　最大努力通知型分布式事务实战347

<span class="token number">17.1</span>　场景说明347

<span class="token number">17.2</span>　程序模块说明348

<span class="token number">17.3</span>　数据库表设计348

<span class="token number">17.4</span>　实现账户微服务350

<span class="token number">17.4</span>.1　项目搭建350

<span class="token number">17.4</span>.2　持久层的实现355

<span class="token number">17.4</span>.3　业务逻辑层的实现358

<span class="token number">17.4</span>.4　接口层的实现360

<span class="token number">17.4</span>.5　启动类的实现360

<span class="token number">17.5</span>　实现充值微服务361

<span class="token number">17.5</span>.1　项目搭建与持久层的实现361

<span class="token number">17.5</span>.2　业务逻辑层的实现361

<span class="token number">17.5</span>.3　接口层的实现362

<span class="token number">17.5</span>.4　启动类的实现363

<span class="token number">17.6</span>　测试程序363

<span class="token number">17.7</span>　本章小结365 
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br><span class="line-number">38</span><br><span class="line-number">39</span><br><span class="line-number">40</span><br><span class="line-number">41</span><br><span class="line-number">42</span><br><span class="line-number">43</span><br><span class="line-number">44</span><br><span class="line-number">45</span><br><span class="line-number">46</span><br><span class="line-number">47</span><br><span class="line-number">48</span><br><span class="line-number">49</span><br><span class="line-number">50</span><br><span class="line-number">51</span><br><span class="line-number">52</span><br><span class="line-number">53</span><br><span class="line-number">54</span><br><span class="line-number">55</span><br><span class="line-number">56</span><br><span class="line-number">57</span><br><span class="line-number">58</span><br><span class="line-number">59</span><br><span class="line-number">60</span><br><span class="line-number">61</span><br><span class="line-number">62</span><br><span class="line-number">63</span><br><span class="line-number">64</span><br><span class="line-number">65</span><br><span class="line-number">66</span><br><span class="line-number">67</span><br><span class="line-number">68</span><br><span class="line-number">69</span><br><span class="line-number">70</span><br><span class="line-number">71</span><br><span class="line-number">72</span><br><span class="line-number">73</span><br><span class="line-number">74</span><br><span class="line-number">75</span><br><span class="line-number">76</span><br><span class="line-number">77</span><br><span class="line-number">78</span><br><span class="line-number">79</span><br><span class="line-number">80</span><br><span class="line-number">81</span><br><span class="line-number">82</span><br><span class="line-number">83</span><br><span class="line-number">84</span><br><span class="line-number">85</span><br><span class="line-number">86</span><br><span class="line-number">87</span><br><span class="line-number">88</span><br><span class="line-number">89</span><br><span class="line-number">90</span><br><span class="line-number">91</span><br><span class="line-number">92</span><br><span class="line-number">93</span><br><span class="line-number">94</span><br><span class="line-number">95</span><br><span class="line-number">96</span><br><span class="line-number">97</span><br><span class="line-number">98</span><br><span class="line-number">99</span><br><span class="line-number">100</span><br><span class="line-number">101</span><br><span class="line-number">102</span><br><span class="line-number">103</span><br><span class="line-number">104</span><br><span class="line-number">105</span><br><span class="line-number">106</span><br><span class="line-number">107</span><br><span class="line-number">108</span><br><span class="line-number">109</span><br><span class="line-number">110</span><br><span class="line-number">111</span><br><span class="line-number">112</span><br><span class="line-number">113</span><br><span class="line-number">114</span><br><span class="line-number">115</span><br><span class="line-number">116</span><br><span class="line-number">117</span><br><span class="line-number">118</span><br><span class="line-number">119</span><br><span class="line-number">120</span><br><span class="line-number">121</span><br><span class="line-number">122</span><br><span class="line-number">123</span><br><span class="line-number">124</span><br><span class="line-number">125</span><br><span class="line-number">126</span><br><span class="line-number">127</span><br><span class="line-number">128</span><br><span class="line-number">129</span><br><span class="line-number">130</span><br><span class="line-number">131</span><br><span class="line-number">132</span><br><span class="line-number">133</span><br><span class="line-number">134</span><br><span class="line-number">135</span><br><span class="line-number">136</span><br><span class="line-number">137</span><br><span class="line-number">138</span><br><span class="line-number">139</span><br><span class="line-number">140</span><br><span class="line-number">141</span><br><span class="line-number">142</span><br><span class="line-number">143</span><br><span class="line-number">144</span><br><span class="line-number">145</span><br><span class="line-number">146</span><br><span class="line-number">147</span><br><span class="line-number">148</span><br><span class="line-number">149</span><br><span class="line-number">150</span><br><span class="line-number">151</span><br><span class="line-number">152</span><br><span class="line-number">153</span><br><span class="line-number">154</span><br><span class="line-number">155</span><br><span class="line-number">156</span><br><span class="line-number">157</span><br><span class="line-number">158</span><br><span class="line-number">159</span><br><span class="line-number">160</span><br><span class="line-number">161</span><br><span class="line-number">162</span><br><span class="line-number">163</span><br><span class="line-number">164</span><br><span class="line-number">165</span><br><span class="line-number">166</span><br><span class="line-number">167</span><br><span class="line-number">168</span><br><span class="line-number">169</span><br><span class="line-number">170</span><br><span class="line-number">171</span><br><span class="line-number">172</span><br><span class="line-number">173</span><br><span class="line-number">174</span><br><span class="line-number">175</span><br><span class="line-number">176</span><br><span class="line-number">177</span><br><span class="line-number">178</span><br><span class="line-number">179</span><br><span class="line-number">180</span><br><span class="line-number">181</span><br><span class="line-number">182</span><br><span class="line-number">183</span><br><span class="line-number">184</span><br><span class="line-number">185</span><br><span class="line-number">186</span><br><span class="line-number">187</span><br><span class="line-number">188</span><br><span class="line-number">189</span><br><span class="line-number">190</span><br><span class="line-number">191</span><br><span class="line-number">192</span><br><span class="line-number">193</span><br><span class="line-number">194</span><br><span class="line-number">195</span><br><span class="line-number">196</span><br><span class="line-number">197</span><br><span class="line-number">198</span><br><span class="line-number">199</span><br><span class="line-number">200</span><br><span class="line-number">201</span><br><span class="line-number">202</span><br><span class="line-number">203</span><br><span class="line-number">204</span><br><span class="line-number">205</span><br><span class="line-number">206</span><br><span class="line-number">207</span><br><span class="line-number">208</span><br><span class="line-number">209</span><br><span class="line-number">210</span><br><span class="line-number">211</span><br><span class="line-number">212</span><br><span class="line-number">213</span><br><span class="line-number">214</span><br><span class="line-number">215</span><br><span class="line-number">216</span><br><span class="line-number">217</span><br><span class="line-number">218</span><br><span class="line-number">219</span><br><span class="line-number">220</span><br><span class="line-number">221</span><br><span class="line-number">222</span><br><span class="line-number">223</span><br><span class="line-number">224</span><br><span class="line-number">225</span><br><span class="line-number">226</span><br><span class="line-number">227</span><br><span class="line-number">228</span><br><span class="line-number">229</span><br><span class="line-number">230</span><br><span class="line-number">231</span><br><span class="line-number">232</span><br><span class="line-number">233</span><br><span class="line-number">234</span><br><span class="line-number">235</span><br><span class="line-number">236</span><br><span class="line-number">237</span><br><span class="line-number">238</span><br><span class="line-number">239</span><br><span class="line-number">240</span><br><span class="line-number">241</span><br><span class="line-number">242</span><br><span class="line-number">243</span><br><span class="line-number">244</span><br><span class="line-number">245</span><br><span class="line-number">246</span><br><span class="line-number">247</span><br><span class="line-number">248</span><br><span class="line-number">249</span><br><span class="line-number">250</span><br><span class="line-number">251</span><br><span class="line-number">252</span><br><span class="line-number">253</span><br><span class="line-number">254</span><br><span class="line-number">255</span><br><span class="line-number">256</span><br><span class="line-number">257</span><br><span class="line-number">258</span><br><span class="line-number">259</span><br><span class="line-number">260</span><br><span class="line-number">261</span><br><span class="line-number">262</span><br><span class="line-number">263</span><br><span class="line-number">264</span><br><span class="line-number">265</span><br><span class="line-number">266</span><br><span class="line-number">267</span><br><span class="line-number">268</span><br><span class="line-number">269</span><br><span class="line-number">270</span><br><span class="line-number">271</span><br><span class="line-number">272</span><br><span class="line-number">273</span><br><span class="line-number">274</span><br><span class="line-number">275</span><br><span class="line-number">276</span><br><span class="line-number">277</span><br><span class="line-number">278</span><br><span class="line-number">279</span><br><span class="line-number">280</span><br><span class="line-number">281</span><br><span class="line-number">282</span><br><span class="line-number">283</span><br><span class="line-number">284</span><br><span class="line-number">285</span><br><span class="line-number">286</span><br><span class="line-number">287</span><br><span class="line-number">288</span><br><span class="line-number">289</span><br><span class="line-number">290</span><br><span class="line-number">291</span><br><span class="line-number">292</span><br><span class="line-number">293</span><br><span class="line-number">294</span><br><span class="line-number">295</span><br><span class="line-number">296</span><br><span class="line-number">297</span><br><span class="line-number">298</span><br><span class="line-number">299</span><br><span class="line-number">300</span><br><span class="line-number">301</span><br><span class="line-number">302</span><br><span class="line-number">303</span><br><span class="line-number">304</span><br><span class="line-number">305</span><br><span class="line-number">306</span><br><span class="line-number">307</span><br><span class="line-number">308</span><br><span class="line-number">309</span><br><span class="line-number">310</span><br><span class="line-number">311</span><br><span class="line-number">312</span><br><span class="line-number">313</span><br><span class="line-number">314</span><br><span class="line-number">315</span><br><span class="line-number">316</span><br><span class="line-number">317</span><br><span class="line-number">318</span><br><span class="line-number">319</span><br><span class="line-number">320</span><br><span class="line-number">321</span><br><span class="line-number">322</span><br><span class="line-number">323</span><br><span class="line-number">324</span><br><span class="line-number">325</span><br><span class="line-number">326</span><br><span class="line-number">327</span><br><span class="line-number">328</span><br><span class="line-number">329</span><br><span class="line-number">330</span><br><span class="line-number">331</span><br><span class="line-number">332</span><br><span class="line-number">333</span><br><span class="line-number">334</span><br><span class="line-number">335</span><br><span class="line-number">336</span><br><span class="line-number">337</span><br><span class="line-number">338</span><br><span class="line-number">339</span><br><span class="line-number">340</span><br><span class="line-number">341</span><br><span class="line-number">342</span><br><span class="line-number">343</span><br><span class="line-number">344</span><br><span class="line-number">345</span><br><span class="line-number">346</span><br><span class="line-number">347</span><br><span class="line-number">348</span><br><span class="line-number">349</span><br><span class="line-number">350</span><br><span class="line-number">351</span><br><span class="line-number">352</span><br><span class="line-number">353</span><br><span class="line-number">354</span><br><span class="line-number">355</span><br><span class="line-number">356</span><br><span class="line-number">357</span><br><span class="line-number">358</span><br><span class="line-number">359</span><br><span class="line-number">360</span><br><span class="line-number">361</span><br><span class="line-number">362</span><br><span class="line-number">363</span><br><span class="line-number">364</span><br><span class="line-number">365</span><br><span class="line-number">366</span><br><span class="line-number">367</span><br><span class="line-number">368</span><br><span class="line-number">369</span><br><span class="line-number">370</span><br><span class="line-number">371</span><br><span class="line-number">372</span><br><span class="line-number">373</span><br><span class="line-number">374</span><br><span class="line-number">375</span><br><span class="line-number">376</span><br><span class="line-number">377</span><br><span class="line-number">378</span><br><span class="line-number">379</span><br><span class="line-number">380</span><br><span class="line-number">381</span><br><span class="line-number">382</span><br><span class="line-number">383</span><br><span class="line-number">384</span><br><span class="line-number">385</span><br><span class="line-number">386</span><br><span class="line-number">387</span><br><span class="line-number">388</span><br><span class="line-number">389</span><br><span class="line-number">390</span><br><span class="line-number">391</span><br><span class="line-number">392</span><br><span class="line-number">393</span><br><span class="line-number">394</span><br><span class="line-number">395</span><br><span class="line-number">396</span><br><span class="line-number">397</span><br><span class="line-number">398</span><br><span class="line-number">399</span><br><span class="line-number">400</span><br><span class="line-number">401</span><br><span class="line-number">402</span><br><span class="line-number">403</span><br><span class="line-number">404</span><br><span class="line-number">405</span><br><span class="line-number">406</span><br><span class="line-number">407</span><br><span class="line-number">408</span><br><span class="line-number">409</span><br><span class="line-number">410</span><br><span class="line-number">411</span><br><span class="line-number">412</span><br><span class="line-number">413</span><br><span class="line-number">414</span><br><span class="line-number">415</span><br><span class="line-number">416</span><br><span class="line-number">417</span><br><span class="line-number">418</span><br><span class="line-number">419</span><br><span class="line-number">420</span><br><span class="line-number">421</span><br><span class="line-number">422</span><br><span class="line-number">423</span><br><span class="line-number">424</span><br><span class="line-number">425</span><br><span class="line-number">426</span><br><span class="line-number">427</span><br><span class="line-number">428</span><br><span class="line-number">429</span><br><span class="line-number">430</span><br><span class="line-number">431</span><br><span class="line-number">432</span><br><span class="line-number">433</span><br><span class="line-number">434</span><br><span class="line-number">435</span><br><span class="line-number">436</span><br><span class="line-number">437</span><br><span class="line-number">438</span><br><span class="line-number">439</span><br><span class="line-number">440</span><br><span class="line-number">441</span><br><span class="line-number">442</span><br><span class="line-number">443</span><br><span class="line-number">444</span><br><span class="line-number">445</span><br><span class="line-number">446</span><br><span class="line-number">447</span><br><span class="line-number">448</span><br><span class="line-number">449</span><br><span class="line-number">450</span><br><span class="line-number">451</span><br><span class="line-number">452</span><br><span class="line-number">453</span><br><span class="line-number">454</span><br><span class="line-number">455</span><br><span class="line-number">456</span><br><span class="line-number">457</span><br><span class="line-number">458</span><br><span class="line-number">459</span><br><span class="line-number">460</span><br><span class="line-number">461</span><br><span class="line-number">462</span><br><span class="line-number">463</span><br><span class="line-number">464</span><br><span class="line-number">465</span><br><span class="line-number">466</span><br><span class="line-number">467</span><br><span class="line-number">468</span><br><span class="line-number">469</span><br><span class="line-number">470</span><br><span class="line-number">471</span><br><span class="line-number">472</span><br><span class="line-number">473</span><br><span class="line-number">474</span><br><span class="line-number">475</span><br><span class="line-number">476</span><br><span class="line-number">477</span><br><span class="line-number">478</span><br><span class="line-number">479</span><br><span class="line-number">480</span><br><span class="line-number">481</span><br><span class="line-number">482</span><br><span class="line-number">483</span><br><span class="line-number">484</span><br><span class="line-number">485</span><br><span class="line-number">486</span><br><span class="line-number">487</span><br><span class="line-number">488</span><br><span class="line-number">489</span><br><span class="line-number">490</span><br><span class="line-number">491</span><br><span class="line-number">492</span><br><span class="line-number">493</span><br><span class="line-number">494</span><br><span class="line-number">495</span><br><span class="line-number">496</span><br><span class="line-number">497</span><br><span class="line-number">498</span><br><span class="line-number">499</span><br><span class="line-number">500</span><br><span class="line-number">501</span><br><span class="line-number">502</span><br><span class="line-number">503</span><br><span class="line-number">504</span><br><span class="line-number">505</span><br><span class="line-number">506</span><br><span class="line-number">507</span><br><span class="line-number">508</span><br><span class="line-number">509</span><br><span class="line-number">510</span><br><span class="line-number">511</span><br><span class="line-number">512</span><br><span class="line-number">513</span><br><span class="line-number">514</span><br><span class="line-number">515</span><br><span class="line-number">516</span><br><span class="line-number">517</span><br><span class="line-number">518</span><br><span class="line-number">519</span><br><span class="line-number">520</span><br><span class="line-number">521</span><br><span class="line-number">522</span><br><span class="line-number">523</span><br><span class="line-number">524</span><br><span class="line-number">525</span><br><span class="line-number">526</span><br><span class="line-number">527</span><br><span class="line-number">528</span><br><span class="line-number">529</span><br><span class="line-number">530</span><br><span class="line-number">531</span><br><span class="line-number">532</span><br><span class="line-number">533</span><br><span class="line-number">534</span><br><span class="line-number">535</span><br><span class="line-number">536</span><br><span class="line-number">537</span><br><span class="line-number">538</span><br><span class="line-number">539</span><br><span class="line-number">540</span><br><span class="line-number">541</span><br><span class="line-number">542</span><br><span class="line-number">543</span><br><span class="line-number">544</span><br><span class="line-number">545</span><br><span class="line-number">546</span><br><span class="line-number">547</span><br><span class="line-number">548</span><br><span class="line-number">549</span><br><span class="line-number">550</span><br><span class="line-number">551</span><br><span class="line-number">552</span><br><span class="line-number">553</span><br><span class="line-number">554</span><br><span class="line-number">555</span><br><span class="line-number">556</span><br><span class="line-number">557</span><br><span class="line-number">558</span><br><span class="line-number">559</span><br><span class="line-number">560</span><br><span class="line-number">561</span><br><span class="line-number">562</span><br><span class="line-number">563</span><br><span class="line-number">564</span><br><span class="line-number">565</span><br><span class="line-number">566</span><br><span class="line-number">567</span><br><span class="line-number">568</span><br><span class="line-number">569</span><br><span class="line-number">570</span><br><span class="line-number">571</span><br><span class="line-number">572</span><br><span class="line-number">573</span><br><span class="line-number">574</span><br><span class="line-number">575</span><br><span class="line-number">576</span><br><span class="line-number">577</span><br><span class="line-number">578</span><br><span class="line-number">579</span><br><span class="line-number">580</span><br><span class="line-number">581</span><br><span class="line-number">582</span><br><span class="line-number">583</span><br><span class="line-number">584</span><br><span class="line-number">585</span><br><span class="line-number">586</span><br><span class="line-number">587</span><br><span class="line-number">588</span><br><span class="line-number">589</span><br><span class="line-number">590</span><br><span class="line-number">591</span><br><span class="line-number">592</span><br><span class="line-number">593</span><br><span class="line-number">594</span><br><span class="line-number">595</span><br><span class="line-number">596</span><br><span class="line-number">597</span><br><span class="line-number">598</span><br><span class="line-number">599</span><br><span class="line-number">600</span><br><span class="line-number">601</span><br><span class="line-number">602</span><br><span class="line-number">603</span><br><span class="line-number">604</span><br><span class="line-number">605</span><br><span class="line-number">606</span><br><span class="line-number">607</span><br><span class="line-number">608</span><br><span class="line-number">609</span><br><span class="line-number">610</span><br><span class="line-number">611</span><br><span class="line-number">612</span><br><span class="line-number">613</span><br><span class="line-number">614</span><br><span class="line-number">615</span><br><span class="line-number">616</span><br><span class="line-number">617</span><br><span class="line-number">618</span><br><span class="line-number">619</span><br><span class="line-number">620</span><br><span class="line-number">621</span><br><span class="line-number">622</span><br><span class="line-number">623</span><br><span class="line-number">624</span><br><span class="line-number">625</span><br><span class="line-number">626</span><br><span class="line-number">627</span><br><span class="line-number">628</span><br><span class="line-number">629</span><br><span class="line-number">630</span><br><span class="line-number">631</span><br><span class="line-number">632</span><br><span class="line-number">633</span><br><span class="line-number">634</span><br><span class="line-number">635</span><br><span class="line-number">636</span><br><span class="line-number">637</span><br><span class="line-number">638</span><br><span class="line-number">639</span><br><span class="line-number">640</span><br><span class="line-number">641</span><br><span class="line-number">642</span><br><span class="line-number">643</span><br><span class="line-number">644</span><br><span class="line-number">645</span><br><span class="line-number">646</span><br><span class="line-number">647</span><br><span class="line-number">648</span><br><span class="line-number">649</span><br><span class="line-number">650</span><br><span class="line-number">651</span><br><span class="line-number">652</span><br><span class="line-number">653</span><br><span class="line-number">654</span><br><span class="line-number">655</span><br><span class="line-number">656</span><br><span class="line-number">657</span><br><span class="line-number">658</span><br><span class="line-number">659</span><br><span class="line-number">660</span><br><span class="line-number">661</span><br><span class="line-number">662</span><br><span class="line-number">663</span><br><span class="line-number">664</span><br><span class="line-number">665</span><br><span class="line-number">666</span><br><span class="line-number">667</span><br><span class="line-number">668</span><br><span class="line-number">669</span><br><span class="line-number">670</span><br><span class="line-number">671</span><br><span class="line-number">672</span><br><span class="line-number">673</span><br><span class="line-number">674</span><br><span class="line-number">675</span><br><span class="line-number">676</span><br><span class="line-number">677</span><br><span class="line-number">678</span><br><span class="line-number">679</span><br><span class="line-number">680</span><br><span class="line-number">681</span><br><span class="line-number">682</span><br><span class="line-number">683</span><br><span class="line-number">684</span><br><span class="line-number">685</span><br><span class="line-number">686</span><br><span class="line-number">687</span><br><span class="line-number">688</span><br><span class="line-number">689</span><br><span class="line-number">690</span><br><span class="line-number">691</span><br><span class="line-number">692</span><br><span class="line-number">693</span><br><span class="line-number">694</span><br><span class="line-number">695</span><br><span class="line-number">696</span><br><span class="line-number">697</span><br><span class="line-number">698</span><br><span class="line-number">699</span><br><span class="line-number">700</span><br><span class="line-number">701</span><br><span class="line-number">702</span><br><span class="line-number">703</span><br><span class="line-number">704</span><br><span class="line-number">705</span><br><span class="line-number">706</span><br><span class="line-number">707</span><br><span class="line-number">708</span><br><span class="line-number">709</span><br><span class="line-number">710</span><br><span class="line-number">711</span><br><span class="line-number">712</span><br><span class="line-number">713</span><br><span class="line-number">714</span><br><span class="line-number">715</span><br><span class="line-number">716</span><br><span class="line-number">717</span><br></div></div><h2 id="_7实拍图"><a href="#_7实拍图" class="header-anchor">#</a> 7实拍图</h2> <p><img alt="" data-src="https://img-blog.csdnimg.cn/d0a3ad6003fe4fcdad164579ded4481c.jpg" loading="lazy" class="lazy"></p> <p><img alt="" data-src="https://img-blog.csdnimg.cn/2c76145a705b4ad2a484ee16c3e15a5e.jpg" loading="lazy" class="lazy"> <img alt="" data-src="https://img-blog.csdnimg.cn/54fd3fcdb74149c0940a962582faaac6.jpg" loading="lazy" class="lazy"> <img alt="" data-src="https://img-blog.csdnimg.cn/be0e9361917a4754b97bb3f5f048d2cb.jpg" loading="lazy" class="lazy"> <img alt="" data-src="https://img-blog.csdnimg.cn/4b1264dae5304459bb0dadd7186edd96.jpg" loading="lazy" class="lazy"></p> <p><img alt="" data-src="https://img-blog.csdnimg.cn/aae1536a5f2340558559cbde27c8f9fd.jpg" loading="lazy" class="lazy"> <img alt="" data-src="https://img-blog.csdnimg.cn/dd39ee216bd44adab50d0bbf0562ab7b.jpg" loading="lazy" class="lazy"></p> <p><img alt="" data-src="https://img-blog.csdnimg.cn/85810e3a396542079e5f2326864d848f.jpg" loading="lazy" class="lazy"></p> <h2 id="写在最后"><a href="#写在最后" class="header-anchor">#</a> 写在最后</h2> <blockquote><p>如果觉得文章对你有点帮助，请微信搜索并关注「 <strong>冰河技术</strong> 」微信公众号，跟冰河学习高并发编程技术。</p></blockquote> <p>最后，附上并发编程需要掌握的核心技能知识图，祝大家在学习并发编程时，少走弯路。</p> <p><img alt="" data-src="https://img-blog.csdnimg.cn/20200322144644983.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2wxMDI4Mzg2ODA0,size_16,color_FFFFFF,t_70#pic_center" loading="lazy" class="lazy"></p> <blockquote><p>如果你觉得冰河写的还不错，请微信搜索并关注「 <strong>冰河技术</strong> 」微信公众号，跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生技术，「 <strong>冰河技术</strong> 」微信公众号更新了大量技术专题，每一篇技术文章干货满满！不少读者已经通过阅读「 <strong>冰河技术</strong> 」微信公众号文章，吊打面试官，成功跳槽到大厂；也有不少读者实现了技术上的飞跃，成为公司的技术骨干！如果你也想像他们一样提升自己的能力，实现技术能力的飞跃，进大厂，升职加薪，那就关注「 <strong>冰河技术</strong> 」微信公众号吧，每天更新超硬核技术干货，让你对如何提升技术能力不再迷茫！</p></blockquote> <p><img alt="" data-src="https://img-blog.csdnimg.cn/20200906013715889.png" loading="lazy" class="lazy"></p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/binghe001/BingheGuide/edit/master/docs/md/knowledge/book/2022-03-29-深入理解分布式事务.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">上次更新: </span> <span class="time">2022/5/23</span></div></footer> <div class="page-nav"><p class="inner"><!----> <span class="next"><a href="/md/knowledge/book/2022-03-29-MySQL技术大全.html">
          久等了，冰河的《MySQL技术大全：开发、优化与运维实战》终于出版了
        </a>
        →
      </span></p></div> </main></div> <aside class="page-sidebar"> <div class="page-side-toolbar"><div class="option-box-toc-fixed"><div class="toc-container-sidebar"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="max-height:650px"><div style="font-weight:bold;text-align:center;">久等了，冰河的《深入理解分布式事务：原理与实战》终于出版了</div> <hr> <div class="toc-box"><ul class="toc-sidebar-links"><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_1本书特色" class="toc-sidebar-link">1本书特色</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_5个维度展开-分布式事务从0到100" class="toc-sidebar-link">5个维度展开，分布式事务从0到100</a></li><li class="toc-sidebar-sub-header"><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#大量图解和开发案例-学习事半功倍" class="toc-sidebar-link">大量图解和开发案例，学习事半功倍</a></li></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_2本书主要内容" class="toc-sidebar-link">2本书主要内容</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_3读者对象" class="toc-sidebar-link">3读者对象</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_4作者简介" class="toc-sidebar-link">4作者简介</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_5专家推荐" class="toc-sidebar-link">5专家推荐</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_6目录" class="toc-sidebar-link">6目录</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_7实拍图" class="toc-sidebar-link">7实拍图</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#写在最后" class="toc-sidebar-link">写在最后</a><ul class="toc-sidebar-sub-headers"></ul></li></ul></div></div></div></div></div> <div class="option-box-toc-over"><img src="/images/system/toc.png" class="nozoom"> <span class="show-txt">目录</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="max-height:550px"><div style="font-weight:bold;text-align:center;">久等了，冰河的《深入理解分布式事务：原理与实战》终于出版了</div> <hr> <div class="toc-box"><ul class="toc-sidebar-links"><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_1本书特色" class="toc-sidebar-link">1本书特色</a><ul class="toc-sidebar-sub-headers"><li class="toc-sidebar-sub-header"><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_5个维度展开-分布式事务从0到100" class="toc-sidebar-link">5个维度展开，分布式事务从0到100</a></li><li class="toc-sidebar-sub-header"><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#大量图解和开发案例-学习事半功倍" class="toc-sidebar-link">大量图解和开发案例，学习事半功倍</a></li></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_2本书主要内容" class="toc-sidebar-link">2本书主要内容</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_3读者对象" class="toc-sidebar-link">3读者对象</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_4作者简介" class="toc-sidebar-link">4作者简介</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_5专家推荐" class="toc-sidebar-link">5专家推荐</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_6目录" class="toc-sidebar-link">6目录</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#_7实拍图" class="toc-sidebar-link">7实拍图</a><ul class="toc-sidebar-sub-headers"></ul></li><li><a href="/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html#写在最后" class="toc-sidebar-link">写在最后</a><ul class="toc-sidebar-sub-headers"></ul></li></ul></div></div></div></div></div> <div class="option-box"><img src="/images/system/wechat.png" class="nozoom"> <span class="show-txt">手机看</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.9rem">微信扫一扫</span> <img height="180px" src="https://api.qrserver.com/v1/create-qr-code/?data=https://binghe001.github.io/md/knowledge/book/2022-03-29-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1.html" style="margin:10px;">
                可以<b>手机看</b>或分享至<b>朋友圈</b></div></div></div></div> <div class="option-box"><img src="/images/system/toggle.png" width="30px" class="nozoom"> <span class="show-txt">左栏</span></div> <div class="option-box"><img src="/images/system/xingqiu.png" width="25px" class="nozoom"> <span class="show-txt">星球</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.8rem;font-weight:bold;">实战项目<span style="font-size:8px;color:red;">「SpringCloud Alibaba实战项目」</span>、专属电子书、问题解答、简历指导、技术分享、晋升指导、视频课程</span> <img height="180px" src="/images/personal/xingqiu.png" style="margin:10px;"> <b>知识星球</b>：冰河技术
            </div></div></div></div> <div class="option-box"><img src="/images/system/wexin4.png" width="25px" class="nozoom"> <span class="show-txt">读者群</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.8rem;font-weight:bold;">添加冰河微信<span style="color:red;">(hacker_binghe)</span>进冰河技术学习交流圈「无任何套路」</span> <img src="/images/personal/hacker_binghe.jpg" height="180px" style="margin:10px;">
                PS：添加时请备注<b>读者加群</b>，谢谢！
              </div></div></div></div> <div class="option-box"><img src="/images/system/download-2.png" width="25px" class="nozoom"> <span class="show-txt">下资料</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.8rem;font-weight:bold;">扫描公众号，回复<span style="color:red;">“1024”</span>下载<span style="color:red;">100GB+</span>学习技术资料、PDF书籍、实战项目、简历模板等「无任何套路」</span> <img src="/images/personal/qrcode.png" height="180px" style="margin:10px;"> <b>公众号:</b> 冰河技术
              </div></div></div></div> <div class="option-box"><img src="/images/system/heart-1.png" width="25px" class="nozoom"> <span class="show-txt">赞赏我</span> <div class="toc-container"><div class="pos-box"><div class="icon-arrow"></div> <div class="scroll-box" style="text-align:center"><span style="font-size:0.8rem;font-weight:bold;">鼓励/支持/赞赏我</span> <img height="180px" src="/images/personal/encourage-head.png" style="margin:5px;"> <br>1. 不靠它生存但仍希望得到你的鼓励；
                <br>2. 时刻警醒自己保持技术人的初心；
              </div></div></div></div> <!----> <div title="久等了，冰河的《MySQL技术大全：开发、优化与运维实战》终于出版了" class="option-box" style="padding-left:2px;text-align:center;"><a href="/md/knowledge/book/2022-03-29-MySQL技术大全.html"><img src="/images/system/next2.png" width="30px" class="nozoom"> <span class="show-txt">下一篇</span></a></div></div>  <!----> </aside></div><div class="global-ui"><div class="read-more-wrap" style="display:none;position:absolute;bottom:0px;z-index:9999;width:100%;margin-top:-100px;font-family:PingFangSC-Regular, sans-serif;"><div id="read-more-mask" style="position: relative; height: 200px; background: -webkit-gradient(linear, 0 0%, 0 100%, from(rgba(255, 255, 255, 0)), to(rgb(255, 255, 255)));"></div> <a id="read-more-btn" target="_self" style="position: absolute; left: 50%; top: 70%; bottom: 30px; transform: translate(-50%, -50%); width: 160px; height: 36px; line-height: 36px; font-size: 15px; text-align: center; border: 1px solid rgb(222, 104, 109); color: rgb(222, 104, 109); background: rgb(255, 255, 255); cursor: pointer; border-radius: 6px;">阅读全文</a> <div id="btw-modal-wrap" style="display: none;"><div id="btw-mask" style="position: fixed; top: 0px; right: 0px; bottom: 0px; left: 0px; opacity: 0.7; z-index: 999; background: rgb(0, 0, 0);"></div> <div id="btw-modal" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; text-align: center; font-size: 13px; background: rgb(255, 255, 255); border-radius: 10px; z-index: 9999; font-family: PingFangSC-Regular, sans-serif;"><span id="btw-modal-close-btn" style="position: absolute; top: 5px; right: 15px; line-height: 34px; font-size: 34px; cursor: pointer; opacity: 0.2; z-index: 9999; color: rgb(0, 0, 0); background: none; border: none; outline: none;">×</span> <p id="btw-modal-header" style="margin-top: 40px; line-height: 1.8; font-size: 13px;">
                扫码或搜索：<span style="color: #E9405A; font-weight: bold;">冰河技术</span> <br>发送：<span id="fustack-token" class="token" style="color: #e9415a; font-weight: bold; font-size: 17px; margin-bottom: 45px;">290992</span> <br>即可<span style="color: #e9415a; font-weight: bold;">立即永久</span>解锁本站全部文章</p> <img src="/images/personal/qrcode.png" style="width: 180px; margin-top: 10px; margin-bottom: 30px; border: 8px solid rgb(230, 230, 230);"></div></div></div><div class="pay-read-more-wrap" style="display:none;position:absolute;bottom:0px;z-index:9999;width:100%;margin-top:-100px;font-family:PingFangSC-Regular, sans-serif;"><div id="pay-read-more-mask" style="position: relative; height: 200px; background: -webkit-gradient(linear, 0 0%, 0 100%, from(rgba(255, 255, 255, 0)), to(rgb(255, 255, 255)));"></div> <a id="pay-read-more-btn" target="_blank" style="position: absolute; left: 50%; top: 70%; bottom: 30px; transform: translate(-50%, -50%); width: 160px; height: 36px; line-height: 36px; font-size: 15px; text-align: center; border: 1px solid rgb(222, 104, 109); color: rgb(222, 104, 109); background: rgb(255, 255, 255); cursor: pointer; border-radius: 6px;">付费阅读</a></div></div></div>
    <script src="/assets/js/cg-styles.js?v=1653305936337" defer></script><script src="/assets/js/cg-4.js?v=1653305936337" defer></script><script src="/assets/js/cg-3.js?v=1653305936337" defer></script><script src="/assets/js/cg-284.js?v=1653305936337" defer></script><script src="/assets/js/cg-5.js?v=1653305936337" defer></script><script src="/assets/js/cg-6.js?v=1653305936337" defer></script><script src="/assets/js/cg-app.js?v=1653305936337" defer></script>
  </body>
</html>
